# -*- coding: utf-8 -*-

# @author Anderson R. Livramento
# Copyright (C) 2008 Anderson Rodrigues Livramento <anderdevel@users.sourceforge.net>
#
# O conteúdo deste arquivo está disponível dentro dos termos 
# da Licença Pública Geral GNU como publicada pela 
# Fundação do Software Livre (FSF); na versão 2 da Licença, ou
# (na sua opnião) qualquer versão mais recente.
#
# Este programa é distribuído na esperança que possa ser útil,
# mas SEM NENHUMA GARANTIA; sem uma garantia implícita de ADEQUAÇÃO a
# qualquer MERCADO ou APLICAÇÃO EM PARTICULAR. Veja a
# Licença Pública Geral GNU para maiores detalhes.
#
# Você deve ter recebido uma cópia da Licença Pública Geral GNU, sob
# o título "LICENCA.txt", junto com este programa; se não, escreva para
# a Fundação do Software Livre(FSF) Inc., 51 Franklin St, Fifth Floor,
# Boston, MA  02110-1301  US
#
"""Helper functions

Consists of functions to typically be used within templates, but also
available to Controllers. This module is available to both as 'h'.
"""
import datetime

from webhelpers import *

def today():
    """Returns current date from server in YYYY-MM-DD format
    """
    return datetime.date.today().strftime('%Y-%m-%d')

def str_date(text):
    """Takes a date in Y-M-D format and
    returns in a D-M-Y format
    """
    if text:
        str_date = str(text)
        if str_date.find('-') > -1:
            ano,mes,dia = str_date.split('-')
            return '/'.join([dia,mes,ano])
        else:
            return str_date
    return text

def str_to_date(dt_str):
    """Takes a date string in D-M-Y format and
    returns a date object
    """
    if dt_str:
        dia,mes,ano = dt_str.split('/')
        return datetime.date(int(ano),int(mes),int(dia))
    else:
        return None
    
def get_propertie(d,spath):
    lpath = spath.split('.')
    result = d
    for p in lpath:
        if result and p in result:
            result = result[p]
        else:
            result = None
            break
    return result
